fn main(){
    // 并发和并行
    // 1、并发：一个执行单元处理多个任务，在任务之间来回切换实现
    // 2、并行：多个执行单元同时执行多个不同任务
    // 3、串行：任务必须按顺序一个接一个执行

    
    // 任务调度器
    // CPU密集型：视频导出瓶颈在CPU速度，调度时需要分配更长时间占用CPU，不切换
    // IO密集型：文件下载，瓶颈在硬或者网速，需要频繁地进行输入 / 输出操作

    // rust的实现
    // Future:表示一个现在还没有准备好、但是未来会准备好【类似于promise】
    // async关键字：用于代码块或者函数表示可以被中断或者恢复【将代码块或者函数转化为返回Future<T>的类型】
    // await 关键字：用于等待Future就绪
    //      1、提高暂停和恢复的执行点
    //      2、“轮训” polling 检查 Future值是否可用的过程

    // 异步运行时
    //      1、异步运行时用来执行调度future
    //      2、第三方异步运行时库：tokio，futures

    // 非阻塞
    //      1、使用async-await在等待任务执行时，把控制权交给【异步运行时】，【异步运行时】可以执行其他任务同时等待任务返回
    //      2、当任务返回时，会继续执行任务

    
    
}